<?php
//============================================
  ### GracePHP的核心文件，加载配置文件 公共类库等
  ### 作者：肖永标
  ### 时间：2014-11-28	
//============================================
header('Content-Type:text/html;charset=utf-8');
session_start();
if((double)PHP_VERSION < 5.3)
{
	exit('抱歉，您的php版本太低了，本框架至少需要php5.3或以上，请升级您的php');
}

// 赋予访问包含文件的权限
define('HAS_POWER', true);
// 系统主路径
define('SYSTEM', str_replace('\\', '/', dirname(__FILE__)));
// 引入系统类的路径
define('INCLUDE_CLASS', SYSTEM . '/include');
// 组件类路径
define('COMPONENT_CLASS', SYSTEM . '/component');
// 语言包路径
define('LANG_PATH', SYSTEM . '/lang');
// 语言包路径
define('EXTEND', SYSTEM . '/extend');

// 引入自动加载类
require_once(INCLUDE_CLASS . '/Autoload.class.php');

// spl自动加载
spl_autoload_register(array('Autoload', 'run'));

// 加载配置数组
$config = require_once(SYSTEM . '/config/config.php');
// 加载应用组的配置数组
$app = $config['application'];
// 当前应用模块的路徑
define('CURRENT_MODULE', $app . MYAPP);
// 加载当前应用的配置项
$config = array_merge($config, require_once(CURRENT_MODULE . 'config/config.php'));
// 载入config类
Config::loadConfig($config);

// 错误报告模式
if(Config::getItem('errorReport.type') == 'dev')
    error_reporting(E_ALL);
else if (Config::getItem('errorReport.type') == 'product')
    error_reporting(0);

set_error_handler(array('GraceEx', 'errorHandler'));

// 设置自定义异常处理和错误处理句柄
set_exception_handler(array('GraceEx', 'exceptionHandler'));

// 加载语言包
$GLOBALS['msg'] = require_once(LANG_PATH . '/' . Config::getItem('lang') . '/message.php');

// 创建当前应用模块
$createModule = new CreateModule();
$createModule->run();

// 路由处理解析
Route::run();